colorswatch: don't apply padding twice
authorCosimo Cecchi <cosimoc@gnome.org>
Fri, 8 Jan 2016 22:58:25 +0000 (14:58 -0800)
committerCosimo Cecchi <cosimoc@gnome.org>
Fri, 8 Jan 2016 22:58:25 +0000 (14:58 -0800)
Instead of taking the border and manually removing it from the
allocation, render our background over all the border allocation box, as
that's more correct and does not take padding into account twice.

gtk/gtkcolorswatch.c

index c7783b3519b3883f1b67eb350e831f8bec9722ba..7d1b9ea0f7e82f3f2c768b20d973888cd4b87948 100644 (file)
@@ -120,14 +120,19 @@ gtk_color_swatch_render (GtkCssGadget *gadget,
     {
       cairo_pattern_t *pattern;
       cairo_matrix_t matrix;
-      GtkBorder border;
+      GtkAllocation allocation, border_allocation;
+
+      gtk_widget_get_allocation (widget, &allocation);
+      gtk_css_gadget_get_border_allocation (gadget, &border_allocation, NULL);
+
+      border_allocation.x -= allocation.x;
+      border_allocation.y -= allocation.y;
 
-      gtk_style_context_get_border (context, gtk_style_context_get_state (context), &border);
       gtk_render_content_path (context, cr,
-                               x - border.left,
-                               y - border.top,
-                               width + border.left + border.right,
-                               height + border.top + border.bottom);
+                               border_allocation.x,
+                               border_allocation.y,
+                               border_allocation.width,
+                               border_allocation.height);
 
       if (swatch->priv->use_alpha)
         {